/*

.:TEAM RESURRECTiON:.

Armadillo Standard+Pause Script by AvAtAr Modified By Teddy Rogers

Tested on WinXP Pro SP2, OllyDbg v1.10, OllyScript v0.92

NOTES:

- Remove all hardware breakpoints before run the script.

- Add the following custom exceptions on OllyDbg:

C0000005(ACCESS VIOLATION), C000001D(ILLEGAL INSTRUCTION)

C000001E(INVALID LOCK SEQUENCE), C0000096(PRIVILEGED INSTRUCTION)

*/



var CreateMutexA

var CreateThread

var GetModuleHandleA

var OpenMutexA

var VirtualAlloc

var JumpLocation

var JumpLength

var adata

var regESP

var OEP



gpa "CreateMutexA", "kernel32.dll" 

mov CreateMutexA, $RESULT

gpa "CreateThread", "kernel32.dll" 

mov CreateThread, $RESULT

gpa "GetModuleHandleA", "kernel32.dll" 

mov GetModuleHandleA, $RESULT

gpa "OpenMutexA", "kernel32.dll" 

mov OpenMutexA, $RESULT

gpa "VirtualAlloc", "kernel32.dll" 

mov VirtualAlloc, $RESULT



gmi eip,MODULEBASE

find $RESULT,#2E6164617461#

mov adata,$RESULT

add adata,0c

mov adata,[adata]

gmi eip,MODULEBASE

add adata,$RESULT



bp OpenMutexA

esto

exec

PUSH EDX

PUSH 0

PUSH 0

CALL CreateMutexA

JMP OpenMutexA

ende

bc OpenMutexA



bphws GetModuleHandleA, "x"

label1:

esto

rtu

find eip, #0F84????????????????????74??????????EB??#

cmp $RESULT,0

je label1

bphwc GetModuleHandleA



mov JumpLocation, $RESULT

mov JumpLength, JumpLocation

add JumpLength, 2

mov JumpLength, [JumpLength]

inc JumpLength

mov [JumpLocation], 0E9

inc JumpLocation

mov [JumpLocation], JumpLength

pause

